// depends on "stdafx.h"
// depends on "primitive_datatypes.h"
// depends on "Desc.h"
// depends on "RenderEngine.h"

#pragma once

class CGameEngine
{
public:
	CGameEngine(void);
	~CGameEngine(void); 
	void Init(GameEngineInitDesc& InitDesc);
	Int Run(void);

private:
	void	InitWindow(void);						
	void	InitRenderEngine(Enum RenderEngine);

	void	Load(void);
	void	Update(Number dt);
	Number	GetDeltaTime(void);
	static	LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
	
	// private members
private:
	Enum		_GameEngineState;	// Engine's state: init, running 
	Int			_ScreenWidth;		// screen resolution 
	Int			_ScreenHeight;		//
	Bool		_FullScreen;		// fullscreen or not
	HINSTANCE	_AppInst;			// windows app handle
	String		_AppName;			// title name
	HWND		_MainWinInst;		// windows handle for the main window

	// engine stuff
	IRenderEngine*	_RenderEngine;	// 

};

